电脑坏了,一周没摸电脑,期间也打了几场比赛补更新一下之前的WriteUp
第一次打TCTF国际赛,tcl… 学到了很多关于java web和php底层的知识
Ghost Pepper
使用Firefox访问题目:https://111.186.63.207:31337
,获得初始密码:
进入后给了一个指纹信息: Powered by Jetty:// 9.3.24.v20180605
以前没接触过java web,简单搜索了一下,Jetty的工作原理,可以和Tomcat类比,是一个Servlet引擎,具体细节可以参考IBM上的这篇文章
首先了解一下以下几个术语:
JavaBeans: 是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。名称中的“Bean”是用于Java的可重用软件组件的惯用叫法。
Mbean, 即 managed beans被管理的Beans根据上述参考文章所述,简单来说即Jetty可以安装一些扩展,可以在Mbean中对其进行定义,即可在server运行的时候将扩展加入运行。
JMX,即 Java Management Extensions Java管理扩展
Jolokia,是一个利用JSON通过Http实现JMX远程管理的开源项目
在这个题中,简单测试之后发现开启了Jolokia服务,通过jolokia,可以方便通过GET/POST发送Json的操作Mbean,jolokia文档。
在文档中写道jolokia支持一些opration:READ、WRITE、SEARCH、EXEC、LIST、VERSION
。
这里可以直接通过EXEC方法给Karaf安装一个控制台,就相当于拿到了webshell:
payload1:1
https://111.186.63.207:31337/jolokia/exec/org.apache.karaf:name=root,type=feature/installFeature(java.lang.String)/webconsole
payload2: post传入json数据
访问https://111.186.63.207:31337/system/console/gogo,flag:
所以这里做出这题的关键在于对jolokia和karaf特性的了解,以及对新东西的文档阅读学习能力。
Wallbreaker Easy
题目链接:https://111.186.63.208:31340
题目给了一个一句话木马让我们bypass disable_function